package idv.jieh.commons.book;

/**
 * <p>
 * 		這個物件代表一個頁面的資料，可以透過 <code>QueryBook</code> 來取得，如果 <code>QueryBook</code>
 * 		有下一頁的話(QueryBook <u>next()</u> method is true)，將可以呼叫 <code>QueryBook</code>
 * 		<u>getPage()</u> method 取得一個 <code>QueryPage。</code>
 * </p>
 * @author Jieh
 * @version 1.0
 */

public class QueryPage extends java.util.Vector{

  // 紀錄本頁相對於整個 Book 來說是第幾頁，建構的時候由 QueryBook 產生
  private int pagination;

  // 紀錄每頁幾筆，其實就是這個物件的數量
  private int member;

  QueryPage(java.util.Collection c, int pagination, int member) {
    super(c);
    this.pagination = pagination;
    this.member = member;
  }

  /**
   * 以輸入的序號 i 取得這個物件中的 <code>idv.jieh.commons.sql.RowCache</code>。
   * @param i int
   * @return RowCache
   */
  public idv.jieh.commons.sql.RowCache getRow(int i){
    return (idv.jieh.commons.sql.RowCache) super.elementAt(i);
  }

  /**
   * 取得頁數。<p>
   * 取得這個 QueryPage 是屬於第幾頁的頁碼。<br>
   * @return 頁碼。
   */
  public int getPagination() {
    return pagination;
  }

  /**
   * 取得總筆數。<p>
   * 這個方法會傳回目前被取走的資料在所有資料(QueryBook)裡面是第幾筆。
   * @param i 跑迴圈時的 i。
   * @return 總筆數。
   */
  public int getTotalCount(int i) {
    return (pagination - 1) * member + i + 1;
  }

} // end class QueryPage
